From eb2c9b433f203eb86854803d12dbb0d5be662a15 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Thu, 30 Apr 2015 10:26:52 +0200 Subject: [PATCH] wayland: Don't send bogus values for cursor surface buffer/scale I was getting really weird values for scale for the blank cursor used when hiding the cursor in a GtkEntry when typing, this was caused by gdk_wayland_device_update_window_cursor sending random values when the returned buffer was NULL. We fix this by just not sending any buffer or scale updates in this case. --- gdk/wayland/gdkdevice-wayland.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c index 070837260a..99658aeff8 100644 --- a/gdk/wayland/gdkdevice-wayland.c +++ b/gdk/wayland/gdkdevice-wayland.c @@ -211,10 +211,13 @@ gdk_wayland_device_update_window_cursor (GdkWaylandDeviceData *wd) wd->enter_serial, wd->pointer_surface, x, y); - wl_surface_attach (wd->pointer_surface, buffer, 0, 0); - wl_surface_set_buffer_scale (wd->pointer_surface, scale); - wl_surface_damage (wd->pointer_surface, 0, 0, w, h); - wl_surface_commit (wd->pointer_surface); + if (buffer) + { + wl_surface_attach (wd->pointer_surface, buffer, 0, 0); + wl_surface_set_buffer_scale (wd->pointer_surface, scale); + wl_surface_damage (wd->pointer_surface, 0, 0, w, h); + wl_surface_commit (wd->pointer_surface); + } if (wd->grab_cursor) { -- 2.30.2